Arbitration-Based Voice Recognition

ABSTRACT

A first network microphone device (NMD) is configured to receive, from a second NMD, a first arbitration message including (i) a first measure of confidence associated with a voice input as detected by the second NMD and (ii) the voice input as detected by the second NMD, and receive, from a third NMD, a second arbitration message including (i) a second measure of confidence associated with the voice input as detected by the third NMD and (ii) the voice input as detected by the third NMD. The first NMD is configured to determine that the second measure of confidence is greater than the first measure of confidence and based on the determination, perform voice recognition based on the voice input as detected by the third NMD, where the voice input includes a command to control audio playback by the first, second, and/or third NMD, and after performing voice recognition, executing the command.

CROSS-REFERENCE TO RELATED APPLICATIONS

This application claims priority under 35 U.S.C. § 120 to, and is acontinuation of, U.S. patent application Ser. No. 16/178,122, filed onNov. 1, 2018, entitled “Arbitration-Based Voice Recognition,” which is acontinuation of U.S. patent application Ser. No. 15/297,627, filed onOct. 19, 2016, now U.S. Pat. No. 10,181,323, entitled “Arbitration-BasedVoice Recognition,” the contents of each of which are herebyincorporated by reference in their entirety.

FIELD OF THE DISCLOSURE

The disclosure is related to consumer goods and, more particularly, tomethods, systems, products, features, services, and other elementsdirected to media playback or some aspect thereof.

BACKGROUND

Options for accessing and listening to digital audio in an out-loudsetting were limited until 2003, when SONOS, Inc. filed for one of itsfirst patent applications, entitled “Method for Synchronizing AudioPlayback between Multiple Networked Devices,” and began offering a mediaplayback system for sale in 2005. The Sonos Wireless HiFi System enablespeople to experience music from many sources via one or more networkedplayback devices. Through a software control application installed on asmartphone, tablet, or computer, one can play what he or she wants inany room that has a networked playback device. Additionally, using thecontroller, for example, different songs can be streamed to each roomwith a playback device, rooms can be grouped together for synchronousplayback, or the same song can be heard in all rooms synchronously.

Given the ever growing interest in digital media, there continues to bea need to develop consumer-accessible technologies to further enhancethe listening experience.

BRIEF DESCRIPTION OF THE DRAWINGS

Features, aspects, and advantages of the presently disclosed technologymay be better understood with regard to the following description,appended claims, and accompanying drawings where:

FIG. 1 shows an example media playback system configuration in whichcertain embodiments may be practiced;

FIG. 2 shows a functional block diagram of an example playback device;

FIG. 3 shows a functional block diagram of an example control device;

FIG. 4 shows an example controller interface;

FIG. 5 shows an example plurality of network devices;

FIG. 6 shows a functional block diagram of an example network microphonedevice;

FIG. 7 shows a simplified flow diagram of functions associated witharbitration between network microphone devices;

FIG. 8 shows an example arbitration message;

FIG. 9 shows a detailed flow diagram of functions associated witharbitration between network microphone devices in accordance with afirst embodiment;

FIG. 10 shows a detailed flow diagram of functions associated witharbitration between network microphone devices in accordance with asecond embodiment;

FIG. 11 shows a flow diagram of arbitration functions; and

FIG. 12 shows a flow diagram associated with voice recognition between anetwork microphone device and a server.

The drawings are for the purpose of illustrating example embodiments,but it is understood that the inventions are not limited to thearrangements and instrumentality shown in the drawings.

DETAILED DESCRIPTION I. OVERVIEW

Listening to media content out loud is a social activity which involvesfamily, friends, and guests. The media content may include, forinstance, talk radio, books, audio from television, music stored on alocal drive, music from media sources (e.g., Pandora® Radio, Spotify®,Slacker®, Radio, Google Play™, iTunes Radio), and other audiblematerial. For example, people may play music out loud at parties andother social gatherings. Further, the music may be played in onelistening zone or multiple listening zones simultaneously, such that themusic in each listening zone may be synchronized, without audible echoesor glitches.

A music experience may be enriched when voice inputs are used to controlan audio playback device or system, among other devices (e.g., lights).For example, a user may wish to change audio content being played back,a playlist, a playback queue, or a listening zone, add a music track toa playlist or playback queue, or change a playback setting (e.g., play,pause, next track, previous track, playback volume, and EQ settings,among others). The user may provide a voice input associated withcontrol of the audio playback device, among other devices, which isreceived by a networked microphone device (NMD). The NMD may include amicrophone to detect the voice input. An NMD may be, for example, aSONOS® playback device, server, or system capable of receiving voiceinput via a microphone to control the audio playback device or system,among other devices. Additionally, or alternatively, the NMD may be, forexample, an AMAZON® ECHO®, APPLE® PHONE® device, server, or systemcapable of receiving voice inputs via a microphone to control the audioplayback device or system, among other devices. U.S. application Ser.No. 15/098,867 entitled, “Default Playback Device Designation,” thecontents of which is hereby incorporated by reference, provides examplesof voice-enabled household architectures.

The voice input from the user may be composed of a wakeword followed bya voice command. The wakeword may indicate to the NMD that voice inputin the form of the voice command follows. The wakeword may be a spokenvoice input such as “Alexa”, “OK Google”, “Hey Sonos”, or “Hey Siri”,among other examples. The voice command may be a spoken voice inputwhich indicates to the NMD that control of a media playback device orsystem, among other devices is requested. Example voice commands mayinclude commands to modify any of the media playback playback settingssuch as playback volume, playback transport controls, music sourceselection, and grouping, among other possibilities. Alternatively, thevoice command may be a spoken voice input requesting information such as“What is the volume setting?” or “What songs are in the playlist?”Multiple NMDs in a listening range may detect the wakeword and receivethe voice command which follows the wakeword.

Embodiments described herein are directed to a method and system forarbitrating which NMD of multiple NMDs may send a voice input (e.g.,voice command or wakeword and voice command) to a cloud-based computingdevice, e.g., server. The NMD may send the voice input to thecloud-based computing device so that the cloud-based computing devicecan perform voice recognition on the voice input. The voice recognitionallows for identification of the requested control or information. Forexample, the arbitration process avoids having multiple NMDs send a samevoice command to the cloud-based computing device, and thereby avoidspotentially wasting bandwidth which could otherwise be used for otheractivities such as playing music.

The arbitration process may begin with the NMD detecting a wakeword. TheNMD may identify the wakeword, e.g., whether the wakeword was “Alexa”,“OK Google”, “Hey Sonos”, or “Hey Siri” and also determine a measure ofconfidence associated with how well the wakeword was detected. The NMDmay also be playing back audio content when the wakeword is detected. Inthis case, the NMD may also adjust the audio being played back by theNMD so that the voice command which follows the wakeword can be clearlyreceived over the audio being played back. The audio may be adjusted ina variety of manners including pausing the audio being played back orducking the audio being played back.

In some embodiments, the NMD may define a time interval indicative ofhow long the NMD may wait before determining whether to send the voicecommand to the cloud-based computing device. The time interval may be astatic parameter or a dynamic parameter. The time interval may beselected to balance needs of providing enough time to complete thearbitration described in more detail below and addressing latencyconcerns.

In some embodiments, the NMD may generate a message also referred toherein as arbitration message which is sent to other NMDs, e.g., in ahousehold. The arbitration message may include one or more of theidentifier of the wakeword which was received by the NMD, the measure ofconfidence of how well the wakeword was detected, and the time interval.Each of the other NMDs that detected the wakeword may send a similararbitration message associated with detection of the wakeword to otherNMDs.

If the NMD receives an arbitration message from another NMD, then theNMD may determine whether it wins the arbitration with the other NMD.The NMD may win the arbitration if the measure of confidence of thewakeword detected by the NMD is greater than that detected by the otherNMD as indicated by the received arbitration message. The NMD which hasa greater measure of confidence associated with the detected wakewordmay be in a better position to clearly receive the voice command whichfollows the wakeword.

If the NMD loses the arbitration, then the NMD may restore the audiobeing played back by the NMD. For example, the NMD may unduck or unpausethe audio. Alternatively, the audio may not be so adjusted until it isnotified by the NMD which wins the arbitration, another NMD in a bondedzone with the NMD, or by the cloud-based computing device.

If the NMD establishes the time interval, the NMD may receive additionalarbitration messages from other NMDs until the time interval expires.The NMD may perform arbitration on these additional arbitrationmessages. If the NMD continues to win arbitrations, then the NMD maysend the received voice command to the cloud-based computing device whenthe time interval expires. The cloud-based computing device may performvoice recognition on the voice command. For example, the cloud-basedcomputing device may convert the voice command to text, interpret thetext, and then formulate a response based on the text. If the voicecommand is a request for information, then the response may be therequested information sent to the NMD in the form of text and convertedto a voice response that is audibly played back by the NMD.Additionally, or alternatively, if the voice command is associated withcontrol of a media playback system or device, then the response may be acommand associated with the control of a media playback device or systemsuch as play certain music content or change a setting of the playbackdevice. The server may send the command to the NMD and the NMD mayperform the command or instruct another network device to perform thecommand.

In some embodiments, arbitration may be performed by a centralizeddevice rather than being performed locally at each NMD. The centralizeddevice may be a designated NMD or other network device on a local areanetwork. The centralized device may be arranged to determine which NMDof one or more NMDs which detected a wakeword should send the voicecommand following the wakeword to the cloud-based computing device. Inthis regard, the centralized device may receive an arbitration messagefrom the one or more NMDs and identify based on the measure ofconfidence associated with the arbitration message which NMD should sendits received voice command to the cloud-based computing device. Forexample, the centralized device may determine which NMD detected thewakeword with a largest measure of confidence. The centralized devicemay then cause the identified NMD to send the received voice command tothe cloud-based computing device.

Moving on from the above illustration, an example embodiment includes afirst network device comprising a processor; memory; and computerinstructions stored in the memory and executable by the processor tocause the processor to: detect a first voice input; determine a firstmeasure of confidence associated with the first voice input; receive amessage, wherein the message comprises a second measure of confidenceassociated with detection of the first voice input by a second networkdevice; determine whether the first measure of confidence is greaterthan the second measure of confidence; and based on the determinationthat the first measure of confidence is greater than the second measureof confidence, send a second voice input to a server. The first networkdevice may further comprise computer instructions for adjusting a volumeof audio playback in response to detecting the first voice input. Thefirst network device may further comprise computer instructions fordetermining that the audio playback is music playback, and whereadjusting the volume of the audio playback in response to detecting thefirst voice input comprises ducking the music playback. The firstnetwork device may further comprise computer instructions fordetermining that the audio playback is playback of an audio book, andwhere adjusting the volume of the audio playback in response todetecting the first voice input comprises pausing the playback of theaudio book. The first network device may further comprise computerinstructions for receiving a notification to return the volume of theaudio playback to a volume setting before adjustment. The message may bea first message. The first network device may further comprise computerinstructions for sending a second message which comprises the firstmeasure of the confidence associated with the detected first voice inputto the second network device. The first network device may furthercomprise computer instructions for waiting for expiration of a timerbefore sending the second voice input to the server. The response may bea voice response. The first network device may further comprise computerinstructions for audibly playing the voice response. The first voiceinput may be a wakeword and the second voice input may be a voicecommand. The first voice input may be the same as the second voiceinput. [31] Another example embodiment may include a method comprising:detecting a first voice input; determining a first measure of confidenceassociated with the first voice input; receiving a message, wherein themessage comprises a second measure of confidence associated withdetection of the first voice input by a network device; determiningwhether the first measure of confidence is greater than the secondmeasure of confidence; and based on the determination that the firstmeasure of confidence is greater than the second measure of confidence,sending a second voice input to a server. The method may furthercomprise adjusting a volume of audio playback in response to detectingthe voice input. The method may further comprise determining that theaudio playback is music playback, and where adjusting the volume of theaudio playback in response to detecting the voice input comprisesducking the music playback. The method may further comprise determiningthat the audio playback is playback of an audio book, and whereadjusting the volume of the audio playback in response to detecting thevoice input comprises pausing the playback of the audio book. The methodmay further comprise receiving a notification to return the volume ofthe audio playback to a volume setting before adjustment. The method mayfurther comprise waiting for expiration of a timer before sending thesecond voice input to the server. The method may further compriseaudibly playing the voice response. The message may be a first message.The method may further comprise sending a second message which comprisesthe first measure of the confidence associated with the detected firstvoice input to the network device. The first voice input may be awakeword and the second voice input may be voice command.

Yet another example embodiment may include a tangible non-transitorycomputer readable storage medium including instructions for execution bya processor, the instructions, when executed, cause the processor toimplement a method comprising: detecting a first voice input;determining a first measure of confidence associated with the firstvoice input; receiving a message, wherein the message comprises a secondmeasure of confidence associated with detection of the first voice inputby a network device; determining whether the first measure of confidenceis greater than the second measure of confidence; and based on thedetermination that the first measure of confidence is greater than thesecond measure of confidence, sending a second voice input to a server.

While some examples described herein may refer to functions performed bygiven actors such as “users” and/or other entities, it should beunderstood that this is for purposes of explanation only. The claimsshould not be interpreted to require action by any such example actorunless explicitly required by the language of the claims themselves. Itwill be understood by one of ordinary skill in the art that thisdisclosure includes numerous other embodiments. Moreover, the examplesdescribed herein may extend to a multitude of embodiments formed bycombining the example features in any suitable manner.

II. EXAMPLE OPERATING ENVIRONMENT

FIG. 1 shows an example configuration of a media playback system 100 inwhich one or more embodiments disclosed herein may be practiced orimplemented. The media playback system 100 as shown is associated withan example home environment having several rooms and spaces, such as forexample, a master bedroom, an office, a dining room, and a living room.As shown in the example of FIG. 1, the media playback system 100includes playback devices 102-124, control devices 126 and 128, and awired or wireless network router 130.

Further discussions relating to the different components of the examplemedia playback system 100 and how the different components may interactto provide a user with a media experience may be found in the followingsections. While discussions herein may generally refer to the examplemedia playback system 100, technologies described herein are not limitedto applications within, among other things, the home environment asshown in FIG. 1. For instance, the technologies described herein may beuseful in environments where multi-zone audio may be desired, such as,for example, a commercial setting like a restaurant, mall or airport, avehicle like a sports utility vehicle (SUV), bus or car, a ship or boat,an airplane, and so on.

a. Example Playback Devices

FIG. 2 shows a functional block diagram of an example playback device200 that may be configured to be one or more of the playback devices102-124 of the media playback system 100 of FIG. 1. The playback device200 may include a processor 202, software components 204, memory 206,audio processing components 208, audio amplifier(s) 210, speaker(s) 212,a network interface 214 including wireless interface(s) 216 and wiredinterface(s) 218, and microphone(s) 220. In one case, the playbackdevice 200 may not include the speaker(s) 212, but rather a speakerinterface for connecting the playback device 200 to external speakers.In another case, the playback device 200 may include neither thespeaker(s) 212 nor the audio amplifier(s) 210, but rather an audiointerface for connecting the playback device 200 to an external audioamplifier or audio-visual receiver.

In one example, the processor 202 may be a clock-driven computingcomponent configured to process input data according to instructionsstored in the memory 206. The memory 206 may be a tangiblecomputer-readable medium configured to store instructions executable bythe processor 202. For instance, the memory 206 may be data storage thatcan be loaded with one or more of the software components 204 executableby the processor 202 to achieve certain functions. In one example, thefunctions may involve the playback device 200 retrieving audio data froman audio source or another playback device. In another example, thefunctions may involve the playback device 200 sending audio data toanother device or playback device on a network. In yet another example,the functions may involve pairing of the playback device 200 with one ormore playback devices to create a multi-channel audio environment.

Certain functions may involve the playback device 200 synchronizingplayback of audio content with one or more other playback devices.During synchronous playback, a listener will preferably not be able toperceive time-delay differences between playback of the audio content bythe playback device 200 and the one or more other playback devices. U.S.Pat. No. 8,234,395 entitled, “System and method for synchronizingoperations among a plurality of independently clocked digital dataprocessing devices,” which is hereby incorporated by reference, providesin more detail some examples for audio playback synchronization amongplayback devices.

The memory 206 may further be configured to store data associated withthe playback device 200, such as one or more zones and/or zone groupsthe playback device 200 is a part of, audio sources accessible by theplayback device 200, or a playback queue that the playback device 200(or some other playback device) may be associated with. The data may bestored as one or more state variables that are periodically updated andused to describe the state of the playback device 200. The memory 206may also include the data associated with the state of the other devicesof the media system, and shared from time to time among the devices sothat one or more of the devices have the most recent data associatedwith the system. Other embodiments are also possible.

The audio processing components 208 may include one or moredigital-to-analog converters (DAC), an audio preprocessing component, anaudio enhancement component or a digital signal processor (DSP), and soon. In one embodiment, one or more of the audio processing components208 may be a subcomponent of the processor 202. In one example, audiocontent may be processed and/or intentionally altered by the audioprocessing components 208 to produce audio signals. The produced audiosignals may then be provided to the audio amplifier(s) 210 foramplification and playback through speaker(s) 212. Particularly, theaudio amplifier(s) 210 may include devices configured to amplify audiosignals to a level for driving one or more of the speakers 212. Thespeaker(s) 212 may include an individual transducer (e.g., a “driver”)or a complete speaker system involving an enclosure with one or moredrivers. A particular driver of the speaker(s) 212 may include, forexample, a subwoofer (e.g., for low frequencies), a mid-range driver(e.g., for middle frequencies), and/or a tweeter (e.g., for highfrequencies). In some cases, each transducer in the one or more speakers212 may be driven by an individual corresponding audio amplifier of theaudio amplifier(s) 210. In addition to producing analog signals forplayback by the playback device 200, the audio processing components 208may be configured to process audio content to be sent to one or moreother playback devices for playback.

Audio content to be processed and/or played back by the playback device200 may be received from an external source, such as via an audioline-in input connection (e.g., an auto-detecting 3.5 mm audio line-inconnection) or the network interface 214.

The network interface 214 may be configured to facilitate a data flowbetween the playback device 200 and one or more other devices on a datanetwork. As such, the playback device 200 may be configured to receiveaudio content over the data network from one or more other playbackdevices in communication with the playback device 200, network deviceswithin a local area network, or audio content sources over a wide areanetwork such as the Internet. In one example, the audio content andother signals transmitted and received by the playback device 200 may betransmitted in the form of digital packet data containing an InternetProtocol (IP)-based source address and IP-based destination addresses.In such a case, the network interface 214 may be configured to parse thedigital packet data such that the data destined for the playback device200 is properly received and processed by the playback device 200.

As shown, the network interface 214 may include wireless interface(s)216 and wired interface(s) 218. The wireless interface(s) 216 mayprovide network interface functions for the playback device 200 towirelessly communicate with other devices (e.g., other playbackdevice(s), speaker(s), receiver(s), network device(s), control device(s)within a data network the playback device 200 is associated with) inaccordance with a communication protocol (e.g., any wireless standardincluding IEEE 802.11a, 802.11b, 802.11g, 802.11n, 802.11ac, 802.15, 4Gmobile communication standard, and so on). The wired interface(s) 218may provide network interface functions for the playback device 200 tocommunicate over a wired connection with other devices in accordancewith a communication protocol (e.g., IEEE 802.3). While the networkinterface 214 shown in FIG. 2 includes both wireless interface(s) 216and wired interface(s) 218, the network interface 214 may in someembodiments include only wireless interface(s) or only wiredinterface(s).

The microphone(s) 220 may be arranged to detect sound in the environmentof the playback device 200. For instance, the microphone(s) may bemounted on an exterior wall of a housing of the playback device. Themicrophone(s) may be any type of microphone now known or later developedsuch as a condenser microphone, electret condenser microphone, or adynamic microphone. The microphone(s) may be sensitive to a portion ofthe frequency range of the speaker(s) 220. One or more of the speaker(s)220 may operate in reverse as the microphone(s) 220. In some aspects,the playback device 200 might not include the microphone(s) 220.

In one example, the playback device 200 and one other playback devicemay be paired to play two separate audio components of audio content.For instance, playback device 200 may be configured to play a leftchannel audio component, while the other playback device may beconfigured to play a right channel audio component, thereby producing orenhancing a stereo effect of the audio content. The paired playbackdevices (also referred to as “bonded playback devices”) may further playaudio content in synchrony with other playback devices.

In another example, the playback device 200 may be sonicallyconsolidated with one or more other playback devices to form a single,consolidated playback device. A consolidated playback device may beconfigured to process and reproduce sound differently than anunconsolidated playback device or playback devices that are paired,because a consolidated playback device may have additional speakerdrivers through which audio content may be rendered. For instance, ifthe playback device 200 is a playback device designed to render lowfrequency range audio content (i.e. a subwoofer), the playback device200 may be consolidated with a playback device designed to render fullfrequency range audio content. In such a case, the full frequency rangeplayback device, when consolidated with the low frequency playbackdevice 200, may be configured to render only the mid and high frequencycomponents of audio content, while the low frequency range playbackdevice 200 renders the low frequency component of the audio content. Theconsolidated playback device may further be paired with a singleplayback device or yet another consolidated playback device.

By way of illustration, SONOS, Inc. presently offers (or has offered)for sale certain playback devices including a “PLAY:1,” “PLAY:3,”“PLAY:5,” “PLAYBAR,” “CONNECT:AMP,” “CONNECT,” and “SUB.” Any otherpast, present, and/or future playback devices may additionally oralternatively be used to implement the playback devices of exampleembodiments disclosed herein. Additionally, it is understood that aplayback device is not limited to the example illustrated in FIG. 2 orto the SONOS product offerings. For example, a playback device mayinclude a wired or wireless headphone. In another example, a playbackdevice may include or interact with a docking station for personalmobile media playback devices. In yet another example, a playback devicemay be integral to another device or component such as a television, alighting fixture, or some other device for indoor or outdoor use.

b. Example Playback Zone Configurations

Referring back to the media playback system 100 of FIG. 1, theenvironment may have one or more playback zones, each with one or moreplayback devices. The media playback system 100 may be established withone or more playback zones, after which one or more zones may be added,or removed to arrive at the example configuration shown in FIG. 1. Eachzone may be given a name according to a different room or space such asan office, bathroom, master bedroom, bedroom, kitchen, dining room,living room, and/or balcony. In one case, a single playback zone mayinclude multiple rooms or spaces. In another case, a single room orspace may include multiple playback zones.

As shown in FIG. 1, the balcony, dining room, kitchen, bathroom, office,and bedroom zones each have one playback device, while the living roomand master bedroom zones each have multiple playback devices. In theliving room zone, playback devices 104, 106, 108, and 110 may beconfigured to play audio content in synchrony as individual playbackdevices, as one or more bonded playback devices, as one or moreconsolidated playback devices, or any combination thereof. Similarly, inthe case of the master bedroom, playback devices 122 and 124 may beconfigured to play audio content in synchrony as individual playbackdevices, as a bonded playback device, or as a consolidated playbackdevice.

In one example, one or more playback zones in the environment of FIG. 1may each be playing different audio content. For instance, the user maybe grilling in the balcony zone and listening to hip hop music beingplayed by the playback device 102 while another user may be preparingfood in the kitchen zone and listening to classical music being playedby the playback device 114. In another example, a playback zone may playthe same audio content in synchrony with another playback zone. Forinstance, the user may be in the office zone where the playback device118 is playing the same rock music that is being playing by playbackdevice 102 in the balcony zone. In such a case, playback devices 102 and118 may be playing the rock music in synchrony such that the user mayseamlessly (or at least substantially seamlessly) enjoy the audiocontent that is being played out-loud while moving between differentplayback zones. Synchronization among playback zones may be achieved ina manner similar to that of synchronization among playback devices, asdescribed in previously referenced U.S. Pat. No. 8,234,395.

As suggested above, the zone configurations of the media playback system100 may be dynamically modified, and in some embodiments, the mediaplayback system 100 supports numerous configurations. For instance, if auser physically moves one or more playback devices to or from a zone,the media playback system 100 may be reconfigured to accommodate thechange(s). For instance, if the user physically moves the playbackdevice 102 from the balcony zone to the office zone, the office zone maynow include both the playback device 118 and the playback device 102.The playback device 102 may be paired or grouped with the office zoneand/or renamed if so desired via a control device such as the controldevices 126 and 128. On the other hand, if the one or more playbackdevices are moved to a particular area in the home environment that isnot already a playback zone, a new playback zone may be created for theparticular area.

Further, different playback zones of the media playback system 100 maybe dynamically combined into zone groups or split up into individualplayback zones. For instance, the dining room zone and the kitchen zone114 may be combined into a zone group for a dinner party such thatplayback devices 112 and 114 may render audio content in synchrony. Onthe other hand, the living room zone may be split into a television zoneincluding playback device 104, and a listening zone including playbackdevices 106, 108, and 110, if the user wishes to listen to music in theliving room space while another user wishes to watch television.

c. Example Control Devices

FIG. 3 shows a functional block diagram of an example control device 300that may be configured to be one or both of the control devices 126 and128 of the media playback system 100. As shown, the control device 300may include a processor 302, memory 304, a network interface 306, a userinterface 308, microphone(s) 310, and software components 312. In oneexample, the control device 300 may be a dedicated controller for themedia playback system 100. In another example, the control device 300may be a network device on which media playback system controllerapplication software may be installed, such as for example, an iPhone™,iPad™ or any other smart phone, tablet or network device (e.g., anetworked computer such as a PC or Mac™).

The processor 302 may be configured to perform functions relevant tofacilitating user access, control, and configuration of the mediaplayback system 100. The memory 304 may be data storage that can beloaded with one or more of the software components executable by theprocessor 302 to perform those functions. The memory 304 may also beconfigured to store the media playback system controller applicationsoftware and other data associated with the media playback system 100and the user.

In one example, the network interface 306 may be based on an industrystandard (e.g., infrared, radio, wired standards including IEEE 802.3,wireless standards including IEEE 802.11a, 802.11b, 802.11g, 802.11n,802.11ac, 802.15, 4G mobile communication standard, and so on). Thenetwork interface 306 may provide a means for the control device 300 tocommunicate with other devices in the media playback system 100. In oneexample, data and information (e.g., such as a state variable) may becommunicated between control device 300 and other devices via thenetwork interface 306. For instance, playback zone and zone groupconfigurations in the media playback system 100 may be received by thecontrol device 300 from a playback device or another network device, ortransmitted by the control device 300 to another playback device ornetwork device via the network interface 306. In some cases, the othernetwork device may be another control device.

Playback device control commands such as volume control and audioplayback control may also be communicated from the control device 300 toa playback device via the network interface 306. As suggested above,changes to configurations of the media playback system 100 may also beperformed by a user using the control device 300. The configurationchanges may include adding/removing one or more playback devices to/froma zone, adding/removing one or more zones to/from a zone group, forminga bonded or consolidated player, separating one or more playback devicesfrom a bonded or consolidated player, among others. Accordingly, thecontrol device 300 may sometimes be referred to as a controller, whetherthe control device 300 is a dedicated controller or a network device onwhich media playback system controller application software isinstalled.

Control device 300 may include microphone(s) 310. Microphone(s) 310 maybe arranged to detect sound in the environment of the control device300. Microphone(s) 310 may be any type of microphone now known or laterdeveloped such as a condenser microphone, electret condenser microphone,or a dynamic microphone. The microphone(s) may be sensitive to a portionof a frequency range. Two or more microphones 310 may be arranged tocapture location information of an audio source (e.g., voice, audiblesound) and/or to assist in filtering background noise.

The user interface 308 of the control device 300 may be configured tofacilitate user access and control of the media playback system 100, byproviding a controller interface such as the controller interface 400shown in FIG. 4. The controller interface 400 includes a playbackcontrol region 410, a playback zone region 420, a playback status region430, a playback queue region 440, and an audio content sources region450. The user interface 400 as shown is just one example of a userinterface that may be provided on a network device such as the controldevice 300 of FIG. 3 (and/or the control devices 126 and 128 of FIG. 1)and accessed by users to control a media playback system such as themedia playback system 100. Other user interfaces of varying formats,styles, and interactive sequences may alternatively be implemented onone or more network devices to provide comparable control access to amedia playback system.

The playback control region 410 may include selectable (e.g., by way oftouch or by using a cursor) icons to cause playback devices in aselected playback zone or zone group to play or pause, fast forward,rewind, skip to next, skip to previous, enter/exit shuffle mode,enter/exit repeat mode, enter/exit cross fade mode. The playback controlregion 410 may also include selectable icons to modify equalizationsettings, and playback volume, among other possibilities.

The playback zone region 420 may include representations of playbackzones within the media playback system 100. In some embodiments, thegraphical representations of playback zones may be selectable to bringup additional selectable icons to manage or configure the playback zonesin the media playback system, such as a creation of bonded zones,creation of zone groups, separation of zone groups, and renaming of zonegroups, among other possibilities.

For example, as shown, a “group” icon may be provided within each of thegraphical representations of playback zones. The “group” icon providedwithin a graphical representation of a particular zone may be selectableto bring up options to select one or more other zones in the mediaplayback system to be grouped with the particular zone. Once grouped,playback devices in the zones that have been grouped with the particularzone will be configured to play audio content in synchrony with theplayback device(s) in the particular zone. Analogously, a “group” iconmay be provided within a graphical representation of a zone group. Inthis case, the “group” icon may be selectable to bring up options todeselect one or more zones in the zone group to be removed from the zonegroup. Other interactions and implementations for grouping andungrouping zones via a user interface such as the user interface 400 arealso possible. The representations of playback zones in the playbackzone region 420 may be dynamically updated as playback zone or zonegroup configurations are modified.

The playback status region 430 may include graphical representations ofaudio content that is presently being played, previously played, orscheduled to play next in the selected playback zone or zone group. Theselected playback zone or zone group may be visually distinguished onthe user interface, such as within the playback zone region 420 and/orthe playback status region 430. The graphical representations mayinclude track title, artist name, album name, album year, track length,and other relevant information that may be useful for the user to knowwhen controlling the media playback system via the user interface 400.

The playback queue region 440 may include graphical representations ofaudio content in a playback queue associated with the selected playbackzone or zone group. In some embodiments, each playback zone or zonegroup may be associated with a playback queue containing informationcorresponding to zero or more audio items for playback by the playbackzone or zone group. For instance, each audio item in the playback queuemay comprise a uniform resource identifier (URI), a uniform resourcelocator (URL) or some other identifier that may be used by a playbackdevice in the playback zone or zone group to find and/or retrieve theaudio item from a local audio content source or a networked audiocontent source, possibly for playback by the playback device.

In one example, a playlist may be added to a playback queue, in whichcase information corresponding to each audio item in the playlist may beadded to the playback queue. In another example, audio items in aplayback queue may be saved as a playlist. In a further example, aplayback queue may be empty, or populated but “not in use” when theplayback zone or zone group is playing continuously streaming audiocontent, such as Internet radio that may continue to play untilotherwise stopped, rather than discrete audio items that have playbackdurations. In an alternative embodiment, a playback queue can includeInternet radio and/or other streaming audio content items and be “inuse” when the playback zone or zone group is playing those items. Otherexamples are also possible.

When playback zones or zone groups are “grouped” or “ungrouped,”playback queues associated with the affected playback zones or zonegroups may be cleared or re-associated. For example, if a first playbackzone including a first playback queue is grouped with a second playbackzone including a second playback queue, the established zone group mayhave an associated playback queue that is initially empty, that containsaudio items from the first playback queue (such as if the secondplayback zone was added to the first playback zone), that contains audioitems from the second playback queue (such as if the first playback zonewas added to the second playback zone), or a combination of audio itemsfrom both the first and second playback queues. Subsequently, if theestablished zone group is ungrouped, the resulting first playback zonemay be re-associated with the previous first playback queue, or beassociated with a new playback queue that is empty or contains audioitems from the playback queue associated with the established zone groupbefore the established zone group was ungrouped. Similarly, theresulting second playback zone may be re-associated with the previoussecond playback queue, or be associated with a new playback queue thatis empty, or contains audio items from the playback queue associatedwith the established zone group before the established zone group wasungrouped. Other examples are also possible.

Referring back to the user interface 400 of FIG. 4, the graphicalrepresentations of audio content in the playback queue region 440 mayinclude track titles, artist names, track lengths, and other relevantinformation associated with the audio content in the playback queue. Inone example, graphical representations of audio content may beselectable to bring up additional selectable icons to manage and/ormanipulate the playback queue and/or audio content represented in theplayback queue. For instance, a represented audio content may be removedfrom the playback queue, moved to a different position within theplayback queue, or selected to be played immediately, or after anycurrently playing audio content, among other possibilities. A playbackqueue associated with a playback zone or zone group may be stored in amemory on one or more playback devices in the playback zone or zonegroup, on a playback device that is not in the playback zone or zonegroup, and/or some other designated device.

The audio content sources region 450 may include graphicalrepresentations of selectable audio content sources from which audiocontent may be retrieved and played by the selected playback zone orzone group. Discussions pertaining to audio content sources may be foundin the following section.

d. Example Audio Content Sources

As indicated previously, one or more playback devices in a zone or zonegroup may be configured to retrieve for playback audio content (e.g.according to a corresponding URI or URL for the audio content) from avariety of available audio content sources. In one example, audiocontent may be retrieved by a playback device directly from acorresponding audio content source (e.g., a line-in connection). Inanother example, audio content may be provided to a playback device overa network via one or more other playback devices or network devices.

Example audio content sources may include a memory of one or moreplayback devices in a media playback system such as the media playbacksystem 100 of FIG. 1, local music libraries on one or more networkdevices (such as a control device, a network-enabled personal computer,or a networked-attached storage (NAS), for example), streaming audioservices providing audio content via the Internet (e.g., the cloud), oraudio sources connected to the media playback system via a line-in inputconnection on a playback device or network devise, among otherpossibilities.

In some embodiments, audio content sources may be regularly added orremoved from a media playback system such as the media playback system100 of FIG. 1. In one example, an indexing of audio items may beperformed whenever one or more audio content sources are added, removedor updated. Indexing of audio items may involve scanning foridentifiable audio items in all folders/directory shared over a networkaccessible by playback devices in the media playback system, andgenerating or updating an audio content database containing metadata(e.g., title, artist, album, track length, among others) and otherassociated information, such as a URI or URL for each identifiable audioitem found. Other examples for managing and maintaining audio contentsources may also be possible.

The above discussions relating to playback devices, controller devices,playback zone configurations, and media content sources provide onlysome examples of operating environments within which functions andmethods described below may be implemented. Other operating environmentsand configurations of media playback systems, playback devices, andnetwork devices not explicitly described herein may also be applicableand suitable for implementation of the functions and methods.

e. Example Plurality of Networked Devices

FIG. 5 shows an example plurality of devices 500 that may be configuredto provide an audio playback experience based on voice control. Onehaving ordinary skill in the art will appreciate that the devices shownin FIG. 5 are for illustrative purposes only, and variations includingdifferent and/or additional devices may be possible. As shown, theplurality of devices 500 includes computing devices 504, 506, and 508;network microphone devices (NMDs) 512, 514, and 516; playback devices(PBDs) 532, 534, 536, and 538; and a controller device (CR) 522.

Each of the plurality of devices 500 may be network-capable devices thatcan establish communication with one or more other devices in theplurality of devices according to one or more network protocols, such asNFC, Bluetooth, Ethernet, and IEEE 802.11, among other examples, overone or more types of networks, such as wide area networks (WAN), localarea networks (LAN), and personal area networks (PAN), among otherpossibilities.

As shown, the computing devices 504, 506, and 508 may be part of a cloudnetwork 502. The cloud network 502 may include additional computingdevices. In one example, the computing devices 504, 506, and 508 may bedifferent servers. In another example, two or more of the computingdevices 504, 506, and 508 may be modules of a single server.Analogously, each of the computing device 504, 506, and 508 may includeone or more modules or servers. For ease of illustration purposesherein, each of the computing devices 504, 506, and 508 may beconfigured to perform particular functions within the cloud network 502.For instance, computing device 508 may be a source of audio content fora streaming music service.

As shown, the computing device 504 may be configured to interface withNMDs 512, 514, and 516 via communication path 542. NMDs 512, 514, and516 may be components of one or more “Smart Home” systems. In one case,NMDs 512, 514, and 516 may be physically distributed throughout ahousehold, similar to the distribution of devices shown in FIG. 1. Inanother case, two or more of the NMDs 512, 514, and 516 may bephysically positioned within relative close proximity of one another.Communication path 542 may comprise one or more types of networks, suchas a WAN including the Internet, LAN, and/or PAN, among otherpossibilities.

In one example, one or more of the NMDs 512, 514, and 516 may be devicesconfigured primarily for audio detection. In another example, one ormore of the NMDs 512, 514, and 516 may be components of devices havingvarious primary utilities. For instance, as discussed above inconnection to FIGS. 2 and 3, one or more of NMDs 512, 514, and 516 maybe the microphone(s) 220 of playback device 200 or the microphone(s) 310of network device 300. Further, in some cases, one or more of NMDs 512,514, and 516 may be the playback device 200 or network device 300. In anexample, one or more of NMDs 512, 514, and/or 516 may include multiplemicrophones arranged in a microphone array.

As shown, the computing device 506 may be configured to interface withCR 522 and PBDs 532, 534, 536, and 538 via communication path 544. Inone example, CR 522 may be a network device such as the network device200 of FIG. 2. Accordingly, CR 522 may be configured to provide thecontroller interface 400 of FIG. 4. Similarly, PBDs 532, 534, 536, and538 may be playback devices such as the playback device 300 of FIG. 3.As such, PBDs 532, 534, 536, and 538 may be physically distributedthroughout a household as shown in FIG. 1. For illustration purposes,PBDs 536 and 538 may be part of a bonded zone 530, while PBDs 532 and534 may be part of their own respective zones. As described above, thePBDs 532, 534, 536, and 538 may be dynamically bonded, grouped,unbonded, and ungrouped. Communication path 544 may comprise one or moretypes of networks, such as a WAN including the Internet, LAN, and/orPAN, among other possibilities.

In one example, as with NMDs 512, 514, and 516, CR522 and PBDs 532, 534,536, and 538 may also be components of one or more “Smart Home” systems.In one case, PBDs 532, 534, 536, and 538 may be distributed throughoutthe same household as the NMDs 512, 514, and 516. Further, as suggestedabove, one or more of PBDs 532, 534, 536, and 538 may be one or more ofNMDs 512, 514, and 516.

The NMDs 512, 514, and 516 may be part of a local area network, and thecommunication path 542 may include an access point that links the localarea network of the NMDs 512, 514, and 516 to the computing device 504over a WAN (communication path not shown). Likewise, each of the NMDs512, 514, and 516 may communicate with each other via such an accesspoint.

Similarly, CR 522 and PBDs 532, 534, 536, and 538 may be part of a localarea network and/or a local playback network as discussed in previoussections, and the communication path 544 may include an access pointthat links the local area network and/or local playback network of CR522 and PBDs 532, 534, 536, and 538 to the computing device 506 over aWAN. As such, each of the CR 522 and PBDs 532, 534, 536, and 538 mayalso communicate with each over such an access point.

In one example, a single access point may include communication paths542 and 544. In an example, each of the NMDs 512, 514, and 516, CR 522,and PBDs 532, 534, 536, and 538 may access the cloud network 502 via thesame access point for a household.

As shown in FIG. 5, each of the NMDs 512, 514, and 516, CR 522, and PBDs532, 534, 536, and 538 may also directly communicate with one or more ofthe other devices via communication means 546. Communication means 546as described herein may involve one or more forms of communicationbetween the devices, according to one or more network protocols, overone or more types of networks, and/or may involve communication via oneor more other network devices. For instance, communication means 546 mayinclude one or more of for example, Bluetooth™ (IEEE 802.15), NFC,Wireless direct, and/or Proprietary wireless, among other possibilities.

In one example, CR 522 may communicate with NMD 512 over Bluetooth™, andcommunicate with PBD 534 over another local area network. In anotherexample, NMD 514 may communicate with CR 522 over another local areanetwork, and communicate with PBD 536 over Bluetooth. In a furtherexample, each of the PBDs 532, 534, 536, and 538 may communicate witheach other according to a spanning tree protocol over a local playbacknetwork, while each communicating with CR 522 over a local area network,different from the local playback network. Other examples are alsopossible.

In some cases, communication means between the NMDs 512, 514, and 516,CR 522, and PBDs 532, 534, 536, and 538 may change depending on types ofcommunication between the devices, network conditions, and/or latencydemands. For instance, communication means 546 may be used when NMD 516is first introduced to the household with the PBDs 532, 534, 536, and538. In one case, the NMD 516 may transmit identification informationcorresponding to the NMD 516 to PBD 538 via NFC, and PBD 538 may inresponse, transmit local area network information to NMD 516 via NFC (orsome other form of communication). However, once NMD 516 has beenconfigured within the household, communication means between NMD 516 andPBD 538 may change. For instance, NMD 516 may subsequently communicatewith PBD 538 via communication path 542, the cloud network 502, andcommunication path 544. In another example, the NMDs and PBDs may nevercommunicate via local communications means 546. In a further example,the NMDs and PBDs may communicate primarily via local communicationsmeans 546. Other examples are also possible.

In an illustrative example, NMDs 512, 514, and 516 may be configured toreceive voice inputs to control PBDs 532, 534, 536, and 538. Theavailable control commands may include any media playback systemcontrols previously discussed, such as playback volume control, playbacktransport controls, music source selection, and grouping, among otherpossibilities. In one instance, NMD 512 may receive a voice input tocontrol one or more of the PBDs 532, 534, 536, and 538. In response toreceiving the voice input, NMD 512 may transmit via communication path542, the voice input to computing device 504 for processing. In oneexample, the computing device 504 may convert the voice input to anequivalent text command, and parse the text command to identify acommand. Computing device 504 may then subsequently transmit the textcommand to the computing device 506. In another example, the computingdevice 504 may convert the voice input to an equivalent text command,and then subsequently transmit the text command to the computing device506. The computing device 506 may then parse the text command toidentify one or more playback commands.

For instance, if the text command is “Play ‘Track 1’ by ‘Artist 1’ from‘Streaming Service 1’ in ‘Zone 1’,” The computing device 506 mayidentify (i) a URL for “Track 1” by “Artist 1” available from “StreamingService 1,” and (ii) at least one playback device in “Zone 1.” In thisexample, the URL for “Track 1” by “Artist 1” from “Streaming Service 1”may be a URL pointing to computing device 508, and “Zone 1” may be thebonded zone 530. As such, upon identifying the URL and one or both ofPBDs 536 and 538, the computing device 506 may transmit viacommunication path 544 to one or both of PBDs 536 and 538, theidentified URL for playback. One or both of PBDs 536 and 538 mayresponsively retrieve audio content from the computing device 508according to the received URL, and begin playing “Track 1” by “Artist 1”from “Streaming Service 1.”

One having ordinary skill in the art will appreciate that the above isjust one illustrative example, and that other implementations are alsopossible. In one case, operations performed by one or more of theplurality of devices 500, as described above, may be performed by one ormore other devices in the plurality of device 500. For instance, theconversion from voice input to the text command may be alternatively,partially, or wholly performed by another device or devices, such as NMD512, computing device 506, PBD 536, and/or PBD 538. Analogously, theidentification of the URL may be alternatively, partially, or whollyperformed by another device or devices, such as NMD 512, computingdevice 504, PBD 536, and/or PBD 538.

f. Example Network Microphone Device

FIG. 6 shows a function block diagram of an example network microphonedevice 600 that may be configured to be one or more of NMDs 512, 514,and 516 of FIG. 5. As shown, the network microphone device 600 includesa processor 602, memory 604, a microphone array 606, a network interface608, a user interface 610, software components 612, and speaker(s) 614.One having ordinary skill in the art will appreciate that other networkmicrophone device configurations and arrangements are also possible. Forinstance, network microphone devices may alternatively exclude thespeaker(s) 614 or have a single microphone instead of microphone array606.

The processor 602 may include one or more processors and/or controllers,which may take the form of a general or special-purpose processor orcontroller. For instance, the processing unit 602 may includemicroprocessors, microcontrollers, application-specific integratedcircuits, digital signal processors, and the like. The memory 604 may bedata storage that can be loaded with one or more of the softwarecomponents executable by the processor 602 to perform those functions.Accordingly, memory 604 may comprise one or more non-transitorycomputer-readable storage mediums, examples of which may includevolatile storage mediums such as random access memory, registers, cache,etc. and non-volatile storage mediums such as read-only memory, ahard-disk drive, a solid-state drive, flash memory, and/or anoptical-storage device, among other possibilities.

The microphone array 606 may be a plurality of microphones arranged todetect sound in the environment of the network microphone device 600.Microphone array 606 may include any type of microphone now known orlater developed such as a condenser microphone, electret condensermicrophone, or a dynamic microphone, among other possibilities. In oneexample, the microphone array may be arranged to detect audio from oneor more directions relative to the network microphone device. Themicrophone array 606 may be sensitive to a portion of a frequency range.In one example, a first subset of the microphone array 606 may besensitive to a first frequency range, while a second subset of themicrophone array may be sensitive to a second frequency range. Themicrophone array 606 may further be arranged to capture locationinformation of an audio source (e.g., voice, audible sound) and/or toassist in filtering background noise. Notably, in some embodiments themicrophone array may consist of only a single microphone, rather than aplurality of microphones.

The network interface 608 may be configured to facilitate wirelessand/or wired communication between various network devices, such as, inreference to FIG. 5, CR 522, PBDs 532-538, computing device 504-508 incloud network 502, and other network microphone devices, among otherpossibilities. As such, network interface 608 may take any suitable formfor carrying out these functions, examples of which may include anEthernet interface, a serial bus interface (e.g., FireWire, USB 2.0,etc.), a chipset and antenna adapted to facilitate wirelesscommunication, and/or any other interface that provides for wired and/orwireless communication. In one example, the network interface 608 may bebased on an industry standard (e.g., infrared, radio, wired standardsincluding IEEE 802.3, wireless standards including IEEE 802.11a,802.11b, 802.11g, 802.11n, 802.11ac, 802.15, 4G mobile communicationstandard, and so on).

The user interface 610 of the network microphone device 600 may beconfigured to facilitate user interactions with the network microphonedevice. In one example, the user interface 608 may include one or moreof physical buttons, graphical interfaces provided on touch sensitivescreen(s) and/or surface(s), among other possibilities, for a user todirectly provide input to the network microphone device 600. The userinterface 610 may further include one or more of lights and thespeaker(s) 614 to provide visual and/or audio feedback to a user. In oneexample, the network microphone device 600 may further be configured toplayback audio content via the speaker(s) 614. In this case, the NMD 600may also includes the functions and features associated with theplayback device 200.

III. EXAMPLE SYSTEMS AND METHODS FOR ARBITRATION-BASED VOICE RECOGNITION

A plurality of NMDs may be communicatively coupled via the communicationmeans 546. One or more of the plurality of NMDs may detect a wakewordassociated with a voice command spoken by a speaker. The voice commandmay be a request for information such as “What is the volume setting?”or “What songs are in the playlist?” Alternatively, the voice commandsmay include commands to modify any of media playback playback settingssuch as playback volume, playback transport controls, music sourceselection, and grouping, among other possibilities. As more householddevices become “smart” (e.g., by incorporating a network interface),voice commands may be used to control household devices other than mediaplayback devices. The voice command may take other forms as well.

Embodiments described herein are directed to a method and system forarbitrating which NMD of multiple NMDs may send a voice input (e.g.,voice command or wakeword and voice command) to a cloud-based computingdevice, e.g., server. The NMD may send the voice input to thecloud-based computing device so that the cloud-based computing devicecan perform voice recognition on the voice input. The voice recognitionallows for identification of the requested control or information. Forexample, the arbitration process avoids having multiple NMDs send a samevoice command to the cloud-based computing device, and thereby avoidspotentially wasting bandwidth which could otherwise be used for otheractivities such as playing music.

Generally, it should be understood that one or more functions describedherein may be performed by the NMD individually or in combination withthe computing device 504-506, PBDs 532-538, NMDs 512-516, CR 522, or anyother devices described herein.

Implementation 700 shown in FIG. 7 presents an embodiment of exampletechniques described herein. Briefly, at 702, a voice input may bedetected. At 704, a measure of confidence may be determined for thevoice input. At 706, an arbitration process may be performed. Thearbitration process may involve determining whether the NMD is to send areceived voice command or a received voice command and the voice inputto a server for voice recognition. Multiple NMDs in the household mayperform the functions described in FIG. 7.

Implementation 700 can be implemented within an operating environmentincluding or involving, for example, the one or more NMDs 512-516 in theconfiguration shown in FIG. 5. The one or more of blocks 702-706 mayinclude one or more operations, functions, or actions. Although theblocks are illustrated in sequential order, these blocks may also beperformed in parallel, and/or in a different order than those describedherein. Also, the various blocks may be combined into fewer blocks,divided into additional blocks, and/or removed based upon the desiredimplementation.

In addition, for the implementation 700 and other processes and methodsdisclosed herein, the flowchart shows functionality and operation of onepossible implementation of some embodiments. In this regard, each blockmay represent a module, a segment, or a portion of program code, whichincludes one or more instructions executable by a processor forimplementing specific logical functions or steps in the process. Theprogram code may be stored on any type of computer readable medium, forexample, such as a storage device including a disk or hard drive. Thecomputer readable medium may include non-transitory computer readablemedium, for example, such as tangible, non-transitory computer-readablemedia that stores data for short periods of time like register memory,processor cache and Random Access Memory (RAM). The computer readablemedium may also include non-transitory media, such as secondary orpersistent long term storage, like read only memory (ROM), optical ormagnetic disks, compact-disc read only memory (CD-ROM), for example. Thecomputer readable media may also be any other volatile or non-volatilestorage systems. The computer readable medium may be considered acomputer readable storage medium, for example, or a tangible storagedevice. In addition, for the implementation 700 and other processes andmethods disclosed herein, each block in FIG. 7 may represent circuitrythat is wired to perform the specific logical functions in the process.

Referring back to FIG. 7, at 702, the voice input may be detected. Forexample, an NMD may have one or more microphones to receive the voiceinput. In some embodiments, the voice input may take the form of thewakeword. The wakeword may be a spoken voice input such as “Alexa”, “OKGoogle”, “Hey Sonos”, or “Hey Siri”, among other examples.

The wakeword may be an indication for the NMD to “wake up” and startreceiving a voice input which follows the wakeword. The voice input maybe a voice command that is received by the NMD. The NMD may store avoice recording of the received voice command, e.g., in a ring orcircular buffer, as the voice command is received. In this regard, thevoice recording may be discarded unless the NMD sends the received voicecommand to the server for processing. The ring or circular buffer may bestored locally and/or remotely via any of the devices or serversdescribed herein.

In some instances, NMD may also adjust audio being played back by theNMD so that the voice command which follows the wakeword is clearlyreceived. The audio may be adjusted in a variety of manners. In oneembodiment, the audio may be ducked. Ducking may involve lowering thevolume of the audio, for example to a volume proportional to a volume ofthe detected wakeword. In another embodiment, the audio may be paused.Whether the audio is ducked or paused may depend on a type of the audioand a desired user experience. The NMD may determine the type of audiobased on an indicator associated with the audio. For example, the NMDmay duck audio in the form of music and the NMD may pause audio in theform of an audio book or podcast. In another example, and as explainedfurther below, audio may be ducked or paused depending on an availableprocessing power of the NMD. Other arrangements are also possible.

The NMD may adjust the audio itself. Additionally, or alternatively, theNMD may adjust the audio played back by audio playback devices in abonded zone with the NMD, e.g., devices playing audio in stereo. Forexample, a notification may be sent to the bonded audio playbackdevices. In some instances, the notification may take the form of aUniversal Plug and Play (UPnP) control request.

In some embodiments, the detection of the voice input may also triggerthe start of a time interval indicative of how long the NMD waits beforesending the received voice command to the server. At one extreme, theNMD may send the voice command as soon as the wakeword is detected.Minimal latency in voice recognition is introduced but arbitration mightneed to be performed by the server as between two or more NMDs whichsend a voice command. At another extreme, the NMD may send the voicecommand after a long time interval, e.g., 100 ms. The long time intervalmay permit sufficient time to arbitrate, but significant latency isintroduced into the voice recognition. Accordingly, the selection of thetime interval may balance interests of providing enough time to performarbitration and minimizing latency in voice recognition.

In some embodiments, the time interval may be the same for all NMDs. Inother embodiments, the time interval may be locally determined. Forexample, the time interval may be based on a number of NMDs connected tocommunication means 546. The time interval may be set longer if thereare more NMDs connected to the communication means 546 and set shorterif there are less NMDs connected to the communication means 546. MoreNMDs may mean it takes longer for NMDs to communicate with each other toperform the arbitration and less NMDs may mean that it takes less timefor NMDs to communicate with each other to perform the arbitration.

For example, the time interval may be set based on a proximity of NMDsto each other. The closer the NMDs are to each other, the shorter thetime interval. Conversely, the further apart the NMDs are, the longerthe time interval. Closer NMDs may mean it takes less time for NMDs tocommunicate with each other to perform the arbitration and NMDs spacedfurther apart may mean that it takes more time for NMDs to communicatewith each other to perform the arbitration.

For example, the time interval may be set based on whether the NMDs arewired or wirelessly connected to each other. Wired connections mayresult in setting a shorter time interval to perform arbitration becausethe wired connection may be more reliable and require lessretransmissions. Wireless connections may result in setting a longertime interval to perform arbitration because the wireless connectionsmay be less reliable and require more retransmissions.

For example, the time interval may be set based on a type of networkthat connects the NMDs to each other, e.g., a WiFi network or apropriety network such as SonosNet. Networks with fewer number of hopsbetween NMDs may result in setting a shorter time interval to performarbitration. Conversely, networks with larger number of hops betweenNMDs may result in setting a longer time interval to performarbitration. Less hops may mean it takes less time for NMDs tocommunicate with each other and more hops may mean that it takes moretime for NMDs to communicate with each other.

In some embodiments, the time interval may be a static value. In otherembodiments, the time interval may be a dynamic value. For example, thetime interval may be tuned based on a learning algorithm which balancesneeds of providing enough time to perform the arbitration and addressinglatency concerns. The learning algorithm may initially choose a timeinterval (e.g., 20 ms) indicative of how long the NMD will wait beforedeciding whether to send the received voice command to the server. Then,the time interval may be increased (e.g., to 40 ms) if a “mistake” isdetected by the server. The mistake may be that two or more NMDsseparately send the voice command which follows the wakeword to theserver. In this case, the server may notify the NMD to increase its timeinterval. The learning algorithm may be applied to the household, agroup of NMDs, or a single NMD.

At 704, a measure of confidence may be determined for the detected voiceinput. The measure of confidence may indicate how well the wakeword wasdetected. The NMD may determine a characteristic associated with thedetected wakeword. In one example, the characteristic may take the formof an audio envelope of the wakeword. The audio envelope may define anamplitude and/or a duration of a wakeword in a time domain. In anotherexample, the characteristic may take the form of a frequency spectrum ofthe wakeword. The frequency spectrum may define frequency content of awakeword in a frequency domain. The NMD may store and/or receive fromthe computing device 504-508 an ideal characteristic for each wakewordthat the NMD might receive. The ideal characteristic may be, forexample, the audio envelope, duration, or frequency spectrum of awakeword when no noise is present. A characteristic of the detectedwakeword may be compared to a corresponding ideal characteristic. A highdegree of correlation between the characteristic of the detectedwakeword and an ideal characteristic may indicate that the detectedwakeword is likely the wakeword associated with the idealcharacteristic. The NMD may identify the wakeword with the highestdegree of correlation.

In some embodiments, the measure of confidence may be indicative of thiscorrelation. The measure of confidence might be, for example, a numberfrom 0 to 1 or 0 to 100. For example, a detection with no backgroundnoise may receive a value of 1 (in the 0 to 1 range) indicating a highdegree of confidence that a specific wakeword was detected while adetection with a lot of distortion or noise might receive a 0.1 (in the0 to 1 range) indicating a low degree of confidence that the specificwakeword was detected. For example, a detection with no background noisemay receive a value of 100 (in the 0 to 100 range) indicating a highdegree of confidence that a specific wakeword was detected while adetection with a lot of distortion or noise might receive a 10 (in the 0to 100 range) indicating a low degree of confidence that the specificwakeword was detected. For example, a detection with no background noisemay receive a value of 10 (in the 0 to 100 range) indicating a highdegree of confidence that a specific wakeword was detected while adetection with a lot of distortion or noise might receive a 100 (in the0 to 100 range) indicating a low degree of confidence that the specificwakeword was detected. For example, a detection with no background noisemay receive a value of 0.1 (in the 0 to 1 range) indicating a highdegree of confidence that a specific wakeword was detected while adetection with a lot of distortion or noise might receive a 1 (in the 0to 1 range) indicating a low degree of confidence that the specificwakeword was detected. In some instances, the measure of confidence maycorrelate to a relative distance between the NMD and the speaker. Otherarrangements are also possible.

In some embodiments, the NMD may generate an arbitration message whichis sent to other NMDs on the communication means 546, e.g., in thehousehold. Each NMD in the household that also detected the wakeword maysend an arbitration message to the other NMDs in the household.Typically, the NMDs which detected the wakeword may be within an audiblerange of the voice input.

FIG. 8 illustrates an example of the arbitration message 800. Thearbitration message 800 may identify one or more of a wakewordidentifier 802, a voice identifier 804, measure of confidence 806, atime interval 808, and a time stamp 810. The arbitration message isillustrated as one message but may take the form of multiple messagesand include more or less identifiers than represented by 802-810.

The household may support multiple wakewords. The wakeword identifier802 may indicate which wakeword the NMD detected. For example, thewakeword identifier may indicate whether the NMD detected the wakeword“Alexa”, “OK Google”, “Hey Sonos”, or “Hey Siri”. The wakeword may takeother forms as well.

Optionally, the arbitration message 800 may include a voice identifier804. The voice identifier may identify the speaker of the wakeword. Theidentification may be who spoke the wakeword, e.g., Mary or Tom, whetherthe speaker was male or female, and/or whether the speaker was old oryoung. The NMD may learn, during a configuration process or be providedby a network device such as the server, a characteristic of each speakerthat may use the NMD. The characteristic may help identify whether thewakeword was spoken by that speaker. For example, the characteristicmight be a frequency spectrum of speech by the speaker. Then, when theNMD receives a wakeword, the NMD may determine whether the wakeword hasthe characteristic of the speaker. If the wakeword has thecharacteristic, then the voice identifier may identify the speakerassociated with the characteristic, e.g., whether it is Mary or Tom whospoke the wakeword and/or whether it is a male or female who spoke thewakeword.

Additionally, or alternatively, the arbitration message 800 may includethe measure of confidence 806 for the detected wakeword. The arbitrationmessage may also identify the time interval 808 associated with how longthe NMD will wait before sending the voice recording to the server.Including the time interval in the arbitration message may allow one NMDto learn what time interval another NMD is using. For example, one NMDmay change its time interval based on that of another NMD. Additionally,the arbitration message may identify a timestamp 810 associated with thearbitration message. The timestamp may be used to identifyretransmissions of arbitration messages, among other reasons.

At 706, an arbitration process based on one or more of the wakeword andthe voice command may be performed to determine whether a voice input,e.g., the voice command that follows the wakeword or the wakeword andvoice command, should be sent to one or more of computing device504-508, e.g., a server. For example, the NMD may determine whether tosend the voice command to the one or more computing devices based on themeasure of confidence of the detected wakeword. For example, the NMD maydetermine whether to send the voice command to the one or more computingdevices based on the received voice command (or portion thereof) and themeasure of confidence of the detected wakeword. If the NMD does not sendthe voice command, then processing may end. If the NMD sends the voicecommand to the server, then the NMD may receive a response from theserver. The response may be a voice response to the voice command thatis to be played back by the NMD or another playback device. For example,a voice response may be “The next song will be Purple Rain” in responseto the voice command “What is the next song in the playback queue?”. TheNMD may play the voice response. Further, if the audio played by the NMDis ducked or is to be ducked, then the NMD may mix the audio with thevoice response for playback when the audio is ducked. In this regard,the NMD may duck audio in response to detecting a wakeword if it hassufficient processing power to perform mixing and pause audio if it doesnot have sufficient processing power to perform the mixing.Additionally, or alternatively, the response may be a command associatedwith control of a media playback device or system. Examples may includeplaying certain music content such as “When Doves Cry by Prince”indicated in the voice command or setting the volume of playback.

FIG. 9 shows a detailed flow diagram 900 of functions associated withthe arbitration between one or more NMDs in accordance with a firstembodiment. The first embodiment is based on an arbitration messagebeing received from another NMD and a voice command being sent to aserver based on the received arbitration message. The describedfunctions may be performed by an NMD individually or in combination withthe computing device 504-506, PBDs 532-538, NMDs 512-516, CR 522, or anyother devices described herein.

At 902, a first voice input may be detected. The first voice input maybe, for example, a wakeword. In some embodiments, the detection maytrigger start of a time interval. At 904, a first measure of confidenceassociated with the first voice input may be determined. The measure ofconfidence may be how well the wakeword was detected. The first measureof confidence may be determined by the NMD itself. Additionally, oralternatively, the NMD may send the voice input to a computing device504-508 or other network device and receive the measure of confidencefrom the computing device 504-508 or other network device.

At 906, a message may be received. The message may be an arbitrationmessage sent from an NMD which detected the same wakeword. The messagemay comprise a second measure of confidence associated with detection ofthe first voice input.

In some embodiments, the NMD may also send an arbitration message whichcomprises the first measure of confidence associated with the firstvoice input to other NMDs. For example, the NMD may send an arbitrationmessage to another NMD coupled to communication means 546. This way theother NMD, e.g., in a household, may perform arbitration as well basedon the wakeword detected by the NMD.

At 908, a determination is made whether the first measure of confidenceis greater than the second measure of confidence. If the first measureof confidence is greater than the second measure of confidence, then theNMD may win the arbitration. The greater measure of confidence indicatesthat the NMD may be in a better position to clearly receive the voicecommand which follows the wakeword.

The NMD may receive a plurality of arbitration messages from a pluralityof NMDs during a time interval. The NMD may continue to compare themeasure of confidence in each arbitration message to the measure ofconfidence associated with the detected first voice input until, forexample, the time interval expires. So long as the measure of confidenceof the detected first voice input is greater than the measure ofconfidence in any of the received arbitration messages, then the NMD maycontinue to win the arbitration.

In some embodiments, the NMD may wait for expiration of the timeinterval before performing any arbitration. At expiration of the timeinterval, the NMD may compare the measure of confidence associated withits detected wakeword with the measure of confidences indicated in thearbitration messages that have been received during the time interval.The NMD may determine whether the measure of confidence associated withits detected wakeword is the highest. Based on this determination, theNMD may send the second voice input to one or more of computing devices504-508 at expiration of the time interval.

At 910, the second voice input may be sent to one or more of computingdevices 504-508, e.g., server based on the determination that the firstmeasure of confidence is greater than the second measure of confidence.In some embodiments, the second voice input may be a voice command thatfollows the first voice input, e.g., wakeword. In other embodiments, thesecond voice input may be the same as the first voice input to theextent that the first voice input is indicative of both a wakeword aswell as a voice command. In yet other embodiments, the first voice inputmay also be sent with the second voice input to the one or morecomputing devices. The server may use the first voice input to arbitrate“in the cloud” as between two or more NMDs which send a voice commandassociated with a same wakeword to the server. The server may thendetermine which sent voice command to use for voice recognition.

The server may then send a response to the second voice input. Theresponse may be a voice response which is played by the NMD or othernetwork device or a command associated with control of a media playbackdevice or system such as play certain music content or change a settingof the playback device.

FIG. 10 shows a detailed flow diagram 1000 of functions associated witharbitration between network microphone devices in accordance with asecond embodiment. The second embodiment illustrates a scenario where anarbitration message associated with detection of the wakeword is notreceived from any other NMD during a time interval and a voice commandwhich follows a wakeword is sent to a server after the time intervalexpires. Again, the described functions may be performed by an NMDindividually or in combination with the computing device 504-506, PBDs532-538, NMDs 512-516, CR 522, or any other devices described herein.

At 1002, a first voice input may be detected. The first voice input maybe, for example, a wakeword. The detection may trigger the start of atime interval. At 1004, a measure of confidence associated with thefirst voice input may be determined. The measure of confidence may bedetermined by the NMD itself. Additionally, or alternatively, the NMDmay send the voice input to a computing device 504-508 or other networkdevice and then receive the measure of confidence from the computingdevice 504-508 or other network device.

In some embodiments, a message, e.g., arbitration message, may be sentwhich comprises the first measure of confidence associated with thefirst voice input. For example, the NMD may send the arbitration messageto other NMDs coupled to communication means 546, e.g., in a household.At 1006, a determination may be made that no message associated withdetection of the first input by another NMD is received in the timeinterval. For example, the NMD may determine that it received noarbitration message from any other NMDs on the communication means 546.At 1008, based on the determination that no message is received, asecond voice input may be sent to one or more of computing devices504-508, e.g., server. The second voice input may be a voice commandthat the NMD received and which followed the voice input in the form ofthe wakeword.

The server may send a response to the second voice input. For example,the NMD which sent the second voice input may receive the response tothe second voice input. The response may be a voice response to arequest for information which is played by the NMD or other networkdevice. Additionally, or alternatively, the response may be a commandassociated with control of a media playback device or system such asplay certain music content or change a setting of the playback device.The NMD or another network device may perform the command defined by theresponse.

FIG. 11 is a flow chart 1100 which describes in more detail thefunctions associated with the arbitration process at 706 of FIG. 7. Thedescribed functions may be performed by an NMD individually or incombination with the computing device 504-506, PBDs 532-538, NMDs512-516, CR 522, or any other devices described herein.

At 1102, the NMD may establish a time interval for an arbitration timer.The arbitration timer may be a clock-based timer. The arbitration timermay be initially set to a time interval indicative of how long the NMDshould wait before sending a voice command which follows the wakeword toone or more of the computing devices, e.g., server. The length of timemay be a configurable parameter, such as 0 to 100 ms. The time intervalmay be set in a manner so as to quickly arbitrate between NMDs withoutadding much latency to voice recognition.

At 1104, a determination is made whether the arbitration timer hasexpired. If the arbitration timer has not expired, then processingcontinues at 1106 to determine whether an arbitration message isreceived. The arbitration message may be message from another NMD whichdetected the same wakeword. If an arbitration message is not received,then processing may return back to 1104 to determine whether thearbitration timer expired. If an arbitration message is received, thenat 1108, the NMD may compare characteristics of the voice input, e.g.,wakeword, that it detected with the characteristics of the wakeworddetected by the NMD which sent the arbitration message.

For example, the NMD may compare the measure of confidence of thewakeword it detected to the measure of confidence in the arbitrationmessage that it received. For example, the NMD may compare the voiceidentifier of the wakeword it detected to the voice identifier in thearbitration message that it received. For example, the NMD may comparethe wakeword identifier of the wakeword it detected to the wakewordindicator in the arbitration message that it received.

The NMD may determine whether it “wins” or “loses” the arbitration withthe other NMD based on the comparison.

The NMD may win the arbitration based on one or more of the followingdeterminations: (i) the measure of confidence determined by the NMD islarger than that associated with the

PATENT received arbitration message; (ii) the voice identifierdetermined by the NMD is different from the voice identifier associatedwith the received arbitration message; (ii) the wakeword detected by theNMD is different from the wakeword identified in the receivedarbitration message. The NMD may win based on other criteria as well.

The NMD may lose the arbitration if the measure of confidence determinedby the NMD is less than that associated with the received arbitrationmessage for the same detected wakeword. If the NMD supports voiceidentification and the arbitration message also indicate a voiceidentifier, the NMD may lose the arbitration if the measure ofconfidence determined by the NMD is less than that associated with thereceived arbitration message for the same voice identifier and samedetected wakeword. The NMD may lose based on other criteria as well.

If the NMD wins the arbitration, then processing may return to 1104. Ifthe NMD loses the arbitration, then at 1108, the arbitration mayterminate. The audio played back by the NMD may have been adjusted,e.g., ducked or paused, when a wakeword was detected so as to betterreceive the voice command which follows the wakeword. If the NMD losesthe arbitration, then the NMD may adjust the audio back to where theaudio was before the wakeword was detected and the audio was adjusted.For example, if the audio was paused, the audio may be unpaused, e.g.,audio playback may continue from where it was stopped. For example, ifthe audio was ducked, then the audio may be unducked, e.g., the volumeof the audio may be increased. For example, if the audio was ducked, theaudio may be returned to a point in the audio prior to ducking. The NMDmay store a position in the audio, e.g., time stamp, where the audio isducked. Upon losing the arbitration, the audio may begin playback at theposition in the audio, e.g., timestamp, where the audio was ducked.Other arrangements are also possible.

In yet another embodiment, if the NMD loses the arbitration, then theNMD may not adjust its audio to a level, e.g., volume, where it wasbefore being adjusted until it receives a notification. In a firstexample, the notification may take the form of a message from the NMDwhich wins the arbitration. In a second example, the notification maytake the form of a message from another playback device (or NMD) whichis in a bonded zone with the NMD. The other playback device may beplaying audio in synchrony with the NMD, win arbitration, provide thevoice command to the server, and then send the notification to the NMDto adjust the audio back when voice recognition is complete. In a thirdexample, the notification may take the form of presence or absence of asignal that is transmitted by the NMD which may have won arbitration.The signal may be output by the NMD via the speakers. For example, thesignal may be outside a frequency range of music, e.g., outside a 20 Hzto 20 KHz frequency range, but still within an audible by the microphoneof the NMD. Presence of this signal may indicate that the NMD shouldadjust the audio to a level where it was before a wakeword was detected.Alternatively, absence of this signal may indicate that the NMD shouldadjust the audio to a level where it was before a wakeword was detected.The notification may take other forms as well, such as Universal Plugand Play (UPnP) control requests.

If at 1104, the time interval expires, then at 1110 the NMD may send thereceived voice command to the server. The time interval may expire ifthe NMD continues to win arbitrations. Alternatively, the time intervalmay expire if the NMD does not receive any arbitration messageassociated with detection of the wakeword from any other NMD before thetime interval expires. In embodiments, the voice command may be sent tothe server by streaming the voice command to the server.

FIG. 12 a flow diagram associated with voice recognition of the voicecommand as between a network microphone device and a computing device,e.g., server. The described functions may be performed by an NMD incombination with the computing device 504-506, PBDs 532-538, NMDs512-516, CR 522, or any other devices described herein.

At 1202, a recognition timer may be established. The recognition timermay be a clock-based timer which defines a duration for which the NMDmay send (e.g., stream) the voice command that the NMD receives to theserver. For example, the duration may be set to 5-10 seconds and used torecover in the extent that the server does not notify the NMD to stopsending the voice command. The server may not notify the NMD to stopsending due to a communication problem over the communications means 546or if the server fails to inform the NMD that the server decided toprocess the voice command received by another NMD. At 1204, adetermination is made whether the recognition timer expires. If therecognition timer expires, then, the streaming of the voice commandterminates. In some embodiments, the streaming of the voice command mayalso terminate if the server sends an abort message to terminate thevoice command streaming. The abort message may indicate that another NMDwon arbitration.

If the recovery timer does not expire, then at 1206, the NMD maydetermine whether the server sent an indication to stop the streaming ofthe voice command. If the server did not send an indication to stop thestreaming of the voice command, then processing may return to 1204 todetermine if the recognition timer expired. If the server sent anindication to stop the streaming of the voice command, then at 1208 theNMD may establish a busy timer. The busy timer may indicate a timeduration by which the server is to send a response to the voice commandthat followed the wakeword after the NMD sent the voice command.

The server may be cloud-based server system. The server may performvoice recognition on the voice command. For example, the server mayconvert the voice command to text, interpret the text, and thenformulate a response based on the text. At 1210, expiration of the busytimer is checked. If the busy timer is not expired, then at 1212, theNMD checks to see if the response is received. The response may take avariety of forms.

In one example, if the voice command is a request for information, thenthe response may be a voice response. The voice response may be therequested information which is sent to the NMD in the form of text andconverted to a voice response that is audibly played back by the NMD.For example, the voice response may be “The weather sunny” in responseto a voice command querying “What is the weather?”. Further, the voiceresponse may be mixed with the audio being played back by the NMD in thecase when the NMD is also playing back audio. If the audio is paused,then the voice response may be played back alone.

In another example, the voice response may be an indication that thevoice command was not understood. For example, the voice response may be“I did not understand the command.” The voice response may take otherforms as well.

Additionally, or alternatively, the response may be a command associatedwith control of a media playback device or system such as play certainmusic content or change a setting of the playback device. The server maysend the command to the NMD and the NMD may perform the command orinstruct another network device to perform the command. For example, thecommand may be for the NMD to play certain audio content or change asetting of the playback device. If a command is received, then the NMDmay perform the command or instruct another network device to performthe command.

The response may take other forms as well, including a response in theform of text which is displayed on the control device 300. Otherarrangements are also possible.

At 1214, an action is performed associated with the response, e.g., playthe voice response or perform the command. If no response is receivedfrom the server, then processing returns to 1210. If the busy timerexpires with no response received, then the processing may terminate.

While the server is processing the voice command, the NMD may not bearranged to detect any additional wakewords. However, the NMD mayreceive additional voice input as a result of playing a voice response.The server may provide an indication to the NMD that the voice responsewill result in additional voice input. The NMD may establish a timer towait for the additional voice input. For example, the additional voiceinput may be an audio signal with an average amplitude which exceeds athreshold level. If the NMD detects an audio signal above a thresholdlevel, then the NMD may receive the additional voice input and streamthe voice input to the server, at which point, the server may provide aresponse to the NMD. The response may be processed as a voice command inthe manner described herein. If the additional voice input is notreceived before the timer expires, the NMD may stop receiving the voiceinput and terminate processing.

In some embodiments, arbitration may be performed by a centralizeddevice rather than being performed locally at each NMD. The centralizeddevice may be a designed NMD or network device connected to thecommunication means 546, e.g., in a household, making a determination ofwhich NMD which detected a wakeword should send the voice commandfollowing the wakeword to the server. In this regard, the centralizeddevice may receive an arbitration message from the one or more NMDs andidentify based on the measure of confidence associated with thearbitration message which NMD should send its received voice command tothe cloud-based computing device. For example, the centralized devicemay determine which NMD detected the wakeword with a highest measure ofconfidence. The centralized device may then cause the identified NMD tosend its received voice command to the computing device.

NMDs may have received a voice command with a sufficiently high measureof confidence that providing the voice command to the computing devicewould assist in performing reliable voice recognition. Accordingly, insome embodiments, the voice command received by NMDs which did not winan arbitration may also be sent to the computing device to improvereliability in voice recognition of the voice command. The receivedvoice command sent may be those having a measure of confidence thatexceeds a threshold level. The NMD which wins arbitration may notifythose NMDs to send its received voice command to the server if themeasure of confidence exceeds the threshold level. The multiple versionsof the voice command may facilitate reliable voice recognition.

IV. CONCLUSION

The description above discloses, among other things, various examplesystems, methods, apparatus, and articles of manufacture including,among other components, firmware and/or software executed on hardware.It is understood that such examples are merely illustrative and shouldnot be considered as limiting. For example, it is contemplated that anyor all of the firmware, hardware, and/or software aspects or componentscan be embodied exclusively in hardware, exclusively in software,exclusively in firmware, or in any combination of hardware, software,and/or firmware. Accordingly, the examples provided are not the onlyway(s) to implement such systems, methods, apparatus, and/or articles ofmanufacture.

Additionally, references herein to “embodiment” means that a particularfeature, structure, or characteristic described in connection with theembodiment can be included in at least one example embodiment of aninvention. The appearances of this phrase in various places in thespecification are not necessarily all referring to the same embodiment,nor are separate or alternative embodiments mutually exclusive of otherembodiments. As such, the embodiments described herein, explicitly andimplicitly understood by one skilled in the art, can be combined withother embodiments.

The specification is presented largely in terms of illustrativeenvironments, systems, procedures, steps, logic blocks, processing, andother symbolic representations that directly or indirectly resemble theoperations of data processing devices coupled to networks. These processdescriptions and representations are typically used by those skilled inthe art to most effectively convey the substance of their work to othersskilled in the art. Numerous specific details are set forth to provide athorough understanding of the present disclosure. However, it isunderstood to those skilled in the art that certain embodiments of thepresent disclosure can be practiced without certain, specific details.In other instances, well known methods, procedures, components, andcircuitry have not been described in detail to avoid unnecessarilyobscuring aspects of the embodiments. Accordingly, the scope of thepresent disclosure is defined by the appended claims rather than theforgoing description of embodiments.

When any of the appended claims are read to cover a purely softwareand/or firmware implementation, at least one of the elements in at leastone example is hereby expressly defined to include a tangible,non-transitory medium such as a memory, DVD, CD, Blu-ray, and so on,storing the software and/or firmware.

We claim:
 1. A first network microphone device (NMD) comprising: one ormore audio processing components configured to cause the first NMD toplay back audio content; a network interface configured tocommunicatively couple the first NMD to a second NMD and a third NMDthat are configured to play back audio content; one or more processors;at least one microphone; a non-transitory, computer-readable medium; andprogram instructions stored on the non-transitory computer-readablemedium that are executable by the at least one processor and therebycause the first NMD device to be configured to: receive, from the secondNMD via the network interface, a first arbitration message comprising(i) a first measure of confidence associated with a voice input asdetected by the second NMD and (ii) the voice input as detected by thesecond NMD; receive, from the third NMD via the network interface, asecond arbitration message comprising (i) a second measure of confidenceassociated with the voice input as detected by the third NMD and (ii)the voice input as detected by the third NMD; determine that the secondmeasure of confidence is greater than the first measure of confidence;based on the determination, perform voice recognition based on the voiceinput as detected by the third NMD, wherein the voice input as detectedby the third NMD comprises a command to control playback of audiocontent by at least one of the first NMD, the second NMD, and the thirdNMD; and after performing voice recognition based on the voice input asdetected by the third NMD, execute the command to control the playbackof the audio content by at least one of the first NMD, the second NMD,and the third NMD.
 2. The first NMD of claim 1, further comprisingprogram instructions stored on the non-transitory computer-readablemedium that are executable by the at least one processor and therebycause the first NMD to be configured to: detect the voice input via theat least one microphone; and determine a third measure of confidenceassociated with the voice input as detected by the first NMD, whereinthe determination that the second measure of confidence is greater thanthe first measure of confidence further comprises a determination thatthe second measure of confidence is greater than the third measure ofconfidence.
 3. The first NMD of claim 1, wherein the second arbitrationmessage further comprises voice data that is based on the voice input asdetected by the third NMD, and wherein the program instructions that areexecutable by the at least one processor to cause the first NMD to beconfigured to perform voice recognition comprise instructions that areexecutable by the at least one processor and thereby cause the first NMDto be configured to: transmit a voice message that comprises the voicedata to a server via a network for voice processing.
 4. The first NMD ofclaim 3, wherein the voice data is indicative of a wakeword.
 5. Thefirst NMD of claim 3, further comprising program instructions stored onthe non-transitory computer-readable medium that are executable by theat least one processor and thereby cause the first NMD to be configuredto: receive, from the server, a voice response to the voice message; andcause the third NMD to play back the voice response.
 6. The first NMD ofclaim 1, wherein the second arbitration message comprises a header thatfurther comprises (i) voice data that is based on the voice input asdetected by the third NMD, (ii) an identifier associated with a sourceof the voice input as detected by the third NMD, and (iii) a timestampvalue indicating a time at which the second arbitration message wastransmitted by the third NMD.
 7. The first NMD of claim 1, wherein thefirst arbitration message further comprises a value indicating aninterval of time that the first NMD will wait, following receipt of thefirst arbitration message, to receive additional arbitration messagesbefore performing voice recognition, wherein the second arbitrationmessage is received before an expiration of the interval of time, andwherein the program instructions that are executable by the at least oneprocessor to cause the first NMD to be configured to perform voicerecognition comprise instructions that are executable by the at leastone processor and thereby cause the first NMD to be configured to:perform voice recognition based on the voice input as detected by thethird NMD upon expiration of the interval of time.
 8. The first NMD ofclaim 1, wherein the first NMD is configured to play back the audiocontent in synchrony with playback of the audio content by the secondNMD and the third NMD.
 9. The first NMD of claim 1, wherein the voiceinput as detected by the third NMD comprises one or more of (i) awakeword or (ii) at least one command.
 10. A non-transitorycomputer-readable storage medium, wherein the non-transitory computerreadable medium is provisioned with program instructions that areexecutable by at least one processor such that a first networkmicrophone device (NMD) is configured to: receive, from a second NMD viaa network interface of the first NMD, a first arbitration messagecomprising (i) a first measure of confidence associated with a voiceinput as detected by the second NMD and (ii) the voice input as detectedby the second NMD; receive, from a third NMD via the network interface,a second arbitration message comprising (i) a second measure ofconfidence associated with the voice input as detected by the third NMDand (ii) the voice input as detected by the third NMD; determine thatthe second measure of confidence is greater than the first measure ofconfidence; based on the determination, perform voice recognition basedon the voice input as detected by the third NMD, wherein the voice inputas detected by the third NMD comprises a command to control playback ofaudio content by at least one of the first NMD, the second NMD, and thethird NMD; and after performing voice recognition based on the voiceinput as detected by the third NMD, execute the command to control theplayback of the audio content by at least one of the first NMD, thesecond NMD, and the third NMD.
 11. The non-transitory computer-readablestorage medium of claim 10, wherein the non-transitory computer-readablemedium is also provisioned with program instructions that are executableby the at least one processor such that the first NMD is configured to:detect the voice input via the at least one microphone; and determine athird measure of confidence associated with the voice input as detectedby the first NMD, wherein the determination that the second measure ofconfidence is greater than the first measure of confidence furthercomprises a determination that the second measure of confidence isgreater than the third measure of confidence.
 12. The non-transitorycomputer-readable storage medium of claim 10, wherein the secondarbitration message further comprises voice data that is based on thevoice input as detected by the third NMD, and wherein the programinstructions that are executable by at least one processor such that thefirst NMD is configured to perform voice recognition comprise programinstructions that are executable by at least one processor such that thefirst NMD is configured to: transmit a voice message that comprises thevoice data to a server via a network for voice processing.
 13. Thenon-transitory computer-readable storage medium of claim 12, wherein thevoice data is indicative of a wakeword.
 14. The non-transitorycomputer-readable storage medium of claim 12, wherein the non-transitorycomputer-readable medium is provisioned with program instructions thatare executable by at least one processor such that a first NMD isconfigured to: receive, from the server, a voice response to the voicemessage; and cause the third NMD to play back the voice response. 15.The non-transitory computer-readable storage medium of claim 10, whereinthe second arbitration message comprises a header that further comprises(i) voice data that is based on the voice input as detected by the thirdNMD, (ii) an identifier associated with a source of the voice input asdetected by the third NMD, and (iii) a timestamp value indicating a timeat which the second arbitration message was transmitted by the thirdNMD.
 16. The non-transitory computer-readable medium of claim 10,wherein the first arbitration message further comprises a valueindicating an interval of time that the first NMD will wait, followingreceipt of the first arbitration message, to receive additionalarbitration messages before performing voice recognition, wherein thesecond arbitration message is received before an expiration of theinterval of time, and wherein the program instructions that areexecutable by at least one processor such that the first NMD isconfigured to perform voice recognition comprise program instructionsthat are executable by at least one processor such that the first NMD isconfigured to: perform voice recognition based on the voice input asdetected by the third NMD upon expiration of the interval of time. 17.The non-transitory computer-readable storage medium of claim 10, furthercomprising instructions that, when executed, cause the at least oneprocessor to: play back, via one or more audio processing component ofthe first NMD, the audio content in synchrony with playback of the audiocontent by the second NMD and the third NMD.
 18. The non-transitorycomputer-readable medium of claim 10, wherein the voice input asdetected by the third NMD comprises one or more of (i) a wakeword or(ii) at least one command.
 19. A system comprising: a first networkmicrophone device (NMD) communicatively coupled to a second NMD and athird NMD via a network interface of the first NMD, wherein the firstNMD is configured to: receive, from the second NMD via the networkinterface, a first arbitration message comprising (i) a first measure ofconfidence associated with a voice input as detected by the second NMDand (ii) the voice input as detected by the second NMD; receive, fromthe third NMD via the network interface, a second arbitration messagecomprising (i) a second measure of confidence associated with the voiceinput as detected by the third NMD and (ii) the voice input as detectedby the third NMD; determine that the second measure of confidence isgreater than the first measure of confidence; based on thedetermination, perform voice recognition based on the voice input asdetected by the third NMD, wherein the voice input as detected by thethird NMD comprises a command to control playback of audio content by atleast one of the first NMD, the second NMD, and the third NMD; and afterperforming voice recognition based on the voice input as detected by thethird NMD, execute the command to control the playback of the audiocontent by at least one of the first NMD, the second NMD, and the thirdNMD.
 20. The system of claim 19, wherein the first NMD is furtherconfigured to: detect the voice input via the at least one microphone;and determine a third measure of confidence associated with the voiceinput as detected by the first NMD, wherein the determination that thesecond measure of confidence is greater than the first measure ofconfidence further comprises a determination that the second measure ofconfidence is greater than the third measure of confidence.